package com.xudu.common;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * ClassName: Result
 * Description:
 *
 * @Author xudu
 * @Create 2024/4/18
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder //建造者模式
public class Result {

    /**
     * 返回状态码
     */
    private int code;

    /**
     * 返回信息
     */
    private String message;

    /**
     * 返回数据
     */
    private Object data;

    /**
     * 返回成功 不带信息数据
     * @return
     */
    public static Result success(){
        return Result.builder()
        .code(200)
        .message("操作成功！")
        .build();
    }

    /**
     * 返回成功 带信息数据
     * @param data
     * @return
     */
    public static Result success(Object data){
        return Result.builder()
        .code(200)
        .message("操作成功！")
        .data(data)
        .build();
    }

    /**
     * 返回错误 带错误信息 不带信息数据
     * @param message
     * @return
     */
    public static Result error(String message){
        return Result.builder()
        .code(400)
        .message(message)
        .build();
    }

    /**
     * 返回错误 返回自定义状态码和错误信息
     * @param code
     * @param message
     * @return
     */
    public static Result error(int code, String message){
        return Result.builder()
        .code(code)
        .message(message)
        .build();
    }
}
